package main

/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-10 10:59:33
 * @Description:
 编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀，返回空字符串 ""。
示例 1：

输入：strs = ["flower","flow","flight"]
输出："fl"
示例 2：

输入：strs = ["dog","racecar","car"]
输出：""
解释：输入不存在公共前缀。
*/

/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-10 11:00:06
 * @Description: 最长公共前缀
 */
func longestCommonPrefix(strs []string) string {
	if len(strs) == 0 {
		return ""
	}
	//最短字符串长度
	var minLen int = len(strs[0])
	for _, s := range strs {
		l := len(s)
		if l < minLen {
			minLen = l
		}
	}

	var index int = 0

	for index <= minLen {

		if allSame(strs, index) {
			index++
			continue
		}
		break

	}

	return strs[0][0 : index-1]

}

func allSame(strs []string, index int) bool {
	s := strs[0][0:index]
	for _, str := range strs {
		if str[0:index] != s {
			return false
		}
	}
	return true
}
